package com.shenke.user.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 权限服务接口
 */
@FeignClient(name = "permission-service", path = "/permission")
public interface PermissionService {

    /**
     * 绑定默认角色（普通用户）
     * @param userId
     */
    @PostMapping("/bindDefaultRole")
    void bindDefaultRole(@RequestParam Long userId);

    /**
     * 查询用户角色码（返回 role_code）
     * @param userId
     * @return
     */
    @GetMapping("/userRoleCode")
    String getUserRoleCode(@RequestParam Long userId);

    /**
     * 超管调用：升级用户为管理员
     * @param userId
     */
    @PutMapping("/upgradeToAdmin")
    void upgradeToAdmin(@RequestParam Long userId);

    /**
     * 超管调用：降级用户为普通角色
     * @param userId
     */
    @PutMapping("/downgradeToUser")
    void downgradeToUser(@RequestParam Long userId);

    /**
     * 根据角色码查询用户 id 列表
     * @param roleCode
     * @return
     */
    @GetMapping("/listUserByRoleCode")
    List<Long> listUserByRoleCode(@RequestParam String roleCode);
}